Eden - The Paradise of Functional Concurrent Programming
نویسندگان
چکیده
The functional concurrent language Eden 1] is an extension of the lazy functional language Haskell 4] by constructs for the explicit speciication of dynamic process systems. It employs stream-based communication and is tailored for distributed memory systems. Eden supports and facilitates the task of parallel and concurrent programming. Eden incorporates special concepts for the eecient treatment of general reac-tive systems, i.e. systems which maintain some interaction with the environment and which may be time-dependent. The dynamic creation of reply channels sim-pliies the generation of complex communication topologies and increases the exibility of the language. Predeened nondeterministic processes MERGE and SPLIT are used to model many-to-one and one-to-many communication in process systems. Eden incorporates a two level structure: the level of user-deened processes and the level of process systems. User-deened processes can be seen as determin-istic mappings from input channels to output channels. Nondeterminism is only handled at the system level which consists of all (predeened and user-deened) processes interacting via communication on channels. 1 Eden in a nutshell Haskell forms the computation language of Eden. This is extended by a coordination model that introduces processes in a functional style, embodying constructs which allow for the deenition and creation of processes, communication and synchronization, and the speciication of interconnections between processes. Eden distinguishes between process abstractions, which specify process behaviour in a purely functional way, and process instantiations in which process abstractions are supplied with input values in order to create new processes. A process abstraction deenes a general parameterized process scheme. It speciies a process which maps (streams of) input values in 1 , : : : , in m to (streams of) output values out
منابع مشابه
From GranSim to Paradise
We describe PARADISE (PARAllel DIstribution Simulator for Eden) a simulator developed to proole the execution of programs written in the parallel functional programming language Eden BLOMP96], BLOMP97]. Eden extends the lazy functional language Haskell by syntactic constructs to explicitly deene processes. Paradise is a substantial modiication of GranSim HLP94], Loi96], Loi98], a tool to study ...
متن کاملHigh-level Parallel and Concurrent Programming in Eden
Parallel and concurrent programming is commonly handled at a low level of abstraction. Even concurrent declarative languages which are especially appropriate for symbolic computation provide only primitive constructs for that purpose. In contrast, the functional concurrent language Eden is an extension of the lazy functional language Haskell by high level constructs for the explicit specificati...
متن کاملStochastic Process Algebras Meet Eden
Process algebras represent an appropriate mechanism to formally specify concurrent systems. In order to get a thorough knowledge of these systems, some external formalism must be used. In this paper we propose an integrated framework where a (non-trivial) process algebra is combined with a (concurrent) functional language. Specifically, we consider a stochastic process algebra featuring value p...
متن کاملTowards a Declarative Language for Parallel and Concurrent Programming
We define a new language Eden by extending a functional language by constructs for the explicit specification of dynamic process systems. Concurrent systems can be classified either as transformational or reactive. For modelling the class of transformational systems, the introduction of a function-like abstraction mechanism is sufficient. In addition to this, the extra-functional concepts prede...
متن کاملFunctional Skeletons Generate Process Topologies in Eden
We present a collection of skeletons that are appropriate to instantiate process systems in the functional-concurrent language Eden BLOM96]. Eden is a functional language providing facilities for the explicit deenition and instantiation of processes. Skeletons in this language are just higher order functions having process deenitions as parameters. We introduce skeletons for both transformation...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996